HTMLify
Move all zeroes to end of array.cpp
Views: 1 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <bits/stdc++.h> using namespace std; vector<int> moveZeros(int n, vector<int> a) { int j = -1; //place the pointer j: for (int i = 0; i < n; i++) { if (a[i] == 0) { j = i; break; } } //no non-zero elements: if (j == -1) return a; //Move the pointers i and j //and swap accordingly: for (int i = j + 1; i < n; i++) { if (a[i] != 0) { swap(a[i], a[j]); j++; } } return a; } int main() { vector<int> arr = {1, 0, 2, 3, 2, 0, 0, 4, 5, 1}; int n = 10; vector<int> ans = moveZeros(n, arr); for (auto &it : ans) { cout << it << " "; } cout << '\n'; return 0; } OR class Solution { public: void moveZeroes(vector<int>& nums) { int n = nums.size(); int i=0; for(int j=0;j<n;j++){ if(nums[j]!=0){ swap(nums[i],nums[j]); i++; } } } }; |